
/*
 * AnalogPort.java
 */

package org.sunspotworld.demo;

import com.sun.spot.sensorboard.EDemoBoard;
import com.sun.spot.sensorboard.io.IScalarInput;
import com.sun.spot.util.Utils;
import java.io.IOException;

/**
 *
 * @author kkmitch
 * @revised by mi zhang
 */
public class AnalogPort {

    private int myPortNumber = -1;
    private IScalarInput myPort = null;
//    private int Sampling_Interval = 6;  //  6 milisecond = 166Hz
//    private int Cal_Counter = 100;      //  calibrate times
//    private int Min = 1024;             //  Maximum possible reading

    public AnalogPort(int portNumber) {
        myPortNumber = portNumber;
        myPort = EDemoBoard.getInstance().getScalarInputs()[myPortNumber];
        //calibrate();
    }

    public int getValue() {
        try {
            return myPort.getValue();
        } catch (IOException ex) {
            ex.printStackTrace();
            return 1024;
        }
    }

//    public void calibrate() {
//        for (int i = 0; i < Cal_Counter ; i++) {
//            if (Min > inValue()) Min = inValue();
//            Utils.sleep(Sampling_Interval);
//        }
//        //System.out.println("PortMin " + Min);
//    }
//    private int inValue() {
//        try {
//            int temp = myPort.getValue();
//            //System.out.println("inValue " + temp);
//            return temp;
//        }catch(IOException ex) {
//            return 1024;
//        }
//    }
//    public int getValue() {
//        int temp1 = inValue() - Min;
//        System.out.println("getValue " + temp1);
//        if(temp1 < 0)
//            return 0;
//        else
//            return temp1;
//    }
//    public void setCalCounter(int counter) {
//        Cal_Counter = counter;
//    }
}

